#include <iostream>
#include <queue>
#include <map>
#include <unordered_map>
#include <vector>
#include <algorithm>
#include <cmath>
#include <string>
#include <cstring>
#include <set>
#include <unordered_set>
using namespace std;
typedef long long ll;
typedef unsigned long long Ull;
const int N=1e5+5;
vector<int> a[N]; 
vector<int> iden;
int t[N];
void solve()
{
	int n,d,k;
	cin>>n>>d>>k;
	for(int i=0;i<n;i++)
	{
		int ts,id;
		scanf("%d %d",&ts,&id);
		a[id].push_back(ts);
		if(t[id]==0)
		{
			t[id]=1;
			iden.push_back(id);
		}
	}
	sort(iden.begin(),iden.end());
	for(int i=0;i<iden.size();i++)
	{
		sort(a[iden[i]].begin(),a[iden[i]].end());
	}
	for(int i=0;i<iden.size();i++)
	{
		int l=a[iden[i]][0];
		int li=0;
		int num=1;
		if(num>=k)
		{
		    cout<<iden[i]<<endl;
		    continue;
		}
		for(int j=1;j<a[iden[i]].size();j++)
		{
			if(a[iden[i]][j]-l<d)
			{
				num++;
				if(num>=k)
				{
					cout<<iden[i]<<endl;
					break;
				}
			}
			else
			{
				num++;
				while(a[iden[i]][j]-l>=d)
				{
					li++;
					l=a[iden[i]][li];
					num--;
			    }
			}
		}
		
	}
}
int main()
{
	solve();

	return 0;
}

